package com.example.toy.core.archive;

import com.example.toy.core.table.TableIdentifier;
import com.example.toy.core.version.ToyVersion;

import java.util.List;

public interface ToyArchiveSystem {
  /**
   * 将指定版本的表数据进行归档
   *
   * @param tableIdentifier
   * @param version
   */
  void archive(TableIdentifier tableIdentifier, ToyVersion version);

  /**
   * 获取表的归档版本列表
   *
   * @param tableIdentifier
   * @return
   */
  List<ToyVersion> getAvailableArchiveVersions(TableIdentifier tableIdentifier);

  /**
   * 移除归档版本的数据
   *
   * @param tableIdentifier
   * @param version
   */
  void removeArchive(TableIdentifier tableIdentifier, ToyVersion version);
}
